www.gusucode.com > VC++ 仿SQLServer企业管理器的SQL客户端工具-源码程序 > VC++ 仿SQLServer企业管理器的SQL客户端工具-源码程序/code/frontToolView.cpp

    //Download by http://www.NewXing.com
// frontToolView.cpp : implementation of the CFrontToolView class
//

#include "stdafx.h"
#include "frontTool.h"

#include "frontToolDoc.h"
#include "frontToolView.h"

#include "mainFrm.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CFrontToolView

IMPLEMENT_DYNCREATE(CFrontToolView, CView)

BEGIN_MESSAGE_MAP(CFrontToolView, CView)
	//{{AFX_MSG_MAP(CFrontToolView)
	ON_WM_CREATE()
	ON_WM_SIZE()
	ON_COMMAND(IDM_FRESH_TAB, OnFreshTab)
	ON_COMMAND(IDM_FRESH_COL, OnFreshCol)
	ON_COMMAND(IDM_CONN_DRV, OnConnDrv)
	ON_COMMAND(IDM_EXPORT_TAB, OnExportTab)
	ON_COMMAND(IDM_IMPORT_TAB, OnImportTab)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFrontToolView construction/destruction

CFrontToolView::CFrontToolView():m_ed(&m_db),m_id(&m_db)
{
	// TODO: add construction code here
	m_pCurShowWnd=NULL;
	m_iCurShowWnd=-1;
}

CFrontToolView::~CFrontToolView()
{
}

BOOL CFrontToolView::CloseCurForm(void)
{
	if(m_pCurShowWnd)
	{
		m_pCurShowWnd->ShowWindow(SW_HIDE);
		m_iCurShowWnd=-1;
		m_pCurShowWnd=NULL;
		return TRUE;
	}
	return FALSE;
}

BOOL CFrontToolView::SetCurForm(int iID)
{
	if(iID==m_iCurShowWnd)
		return FALSE;
	CloseCurForm();
	m_iCurShowWnd=iID;
	switch(iID)
	{
	case(0):
		m_pCurShowWnd=&m_bl;
		break;
	case(1):
		m_pCurShowWnd=&m_ed;
		break;
	case(2):
		m_pCurShowWnd=&m_id;
		break;
	}
	if(m_pCurShowWnd)
	{
		CRect rcC;
		GetClientRect(rcC);
		m_pCurShowWnd->ShowWindow(SW_SHOW);
		m_pCurShowWnd->MoveWindow(rcC);
	}
	return TRUE;
}

BOOL CFrontToolView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CFrontToolView drawing

void CFrontToolView::OnDraw(CDC* pDC)
{
	CFrontToolDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);

	// TODO: add draw code for native data here
}

/////////////////////////////////////////////////////////////////////////////
// CFrontToolView diagnostics

#ifdef _DEBUG
void CFrontToolView::AssertValid() const
{
	CView::AssertValid();
}

void CFrontToolView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

CFrontToolDoc* CFrontToolView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CFrontToolDoc)));
	return (CFrontToolDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CFrontToolView message handlers

int CFrontToolView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CView::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	CRect rcC(0,50,300,400);
	m_bl.Create(WS_CHILD|WS_VISIBLE,rcC,this,0X5010);
	m_pCurShowWnd=&m_bl;
	m_iCurShowWnd=0;

	m_ed.CreateWnd(this,rcC);
	m_ed.ShowWindow(SW_HIDE);
	m_id.CreateWnd(this,rcC);
	m_id.ShowWindow(SW_HIDE);
	/*char szC[100]="c1\0c2\0c3\0\0";
	int iW[3]={100,130,50};
	m_bl.ResetColInfo(szC,iW);*/


	return 0;
}

void CFrontToolView::OnSize(UINT nType, int cx, int cy) 
{
	CView::OnSize(nType, cx, cy);
	
	CRect rc(0,0,cx,cy);
	if(m_pCurShowWnd)
		m_pCurShowWnd->MoveWindow(rc);
}

void CFrontToolView::OnFreshTab() 
{
	SetCurForm(0);
	CMainFrame* pF=(CMainFrame*)(((CFrontToolApp*)AfxGetApp())->m_pMainWnd);
	pF->m_wndToolBar.m_cb.ListTable(&m_db);
}

void CFrontToolView::OnFreshCol() 
{
	SetCurForm(0);
	CMainFrame* pF=(CMainFrame*)(((CFrontToolApp*)AfxGetApp())->m_pMainWnd);
	int iSel=pF->m_wndToolBar.m_cb.GetCurSel();
	if(iSel<0)
		return ;
	TRACE("select No%d\n",iSel);
	if(m_db.DescTable(iSel))
	{
		m_bl.ResetColInfo(&m_db);
	}
	/*CString szTxt;
	pF->m_wndToolBar.m_cb.GetWindowText(szTxt);
	if(szTxt.GetLength())
	{
		return ;
	}
	if(m_db.DescTable(szTxt))
	{
		m_bl.ResetColInfo(&m_db);
	}*/

/*	CStringArray arrRes;
	m_db.GenerateDescString(arrRes);
	m_bl.ResetColInfo(arrRes);*/
	//m_bl.ResetColInfo(m_db.m_arrColFull);
}

void CFrontToolView::OnConnDrv() 
{
	if(!m_db.Open())
		AfxMessageBox("连接失败");
	else
		AfxMessageBox("连接成功");
}

void CFrontToolView::OnExportTab() 
{
//	char szSQL[]="select to_char(xh),nvl(zdnr,' '), nvl(rgnr,' '),nvl(fjnr,' '),nvl(qtnr,' '),nvl(hwy,' '), nvl(to_char(lrrq,'YYYYMMDDHH24MI'),' ') from tkf_bbhc order by xh";
//	CExpTab et(&m_db);
//	et.ExportTab(szSQL,"c:\\temp\\bbhc");
	SetCurForm(1);
}

void CFrontToolView::OnImportTab() 
{
	SetCurForm(2);
//	char szSQL[]="insert into hd1(name,id,birth) values(?,?,to_date(?,'YYYYMMDDHH24MI'))";
//	CImpTab it(&m_db);
//	it.ImportTab(szSQL,"c:\\temp\\hd1",3,3);
}